<?

class Qi_Controle_Funcao
{
	public function exec($acao = "")
	{
		if ($acao == "") $acao = $this->acao_padrao;
		$tpl_vars = $this->exec_acao($acao);
		return $this->exec_tpl($acao, (array)$tpl_vars);
	}

	function exec_acao($acao)
	{
		return is_callable($acao) ? $acao() : array();
	}

	function exec_tpl($__acao, array $__tpl_vars)
	{
		$__arquivo = "$__acao.php";
		if ( ! is_readable($__arquivo) ) return "";
		ob_start();
		extract($__tpl_vars);
		include $__arquivo;
		return ob_get_clean();
	}
}

?>